package com.cin.cma.server.pos.service;

import com.cin.cma.common.model.finixx.base.BaseRequest;
import com.cin.cma.common.model.finixx.base.BaseResponse;
import com.cin.cma.common.model.finixx.request.*;
import com.cin.cma.common.model.finixx.response.*;

/**
 *
 * @Date：2024-07-18 14:45
 */
public interface ITicketService {
    /**
     * 获取全天排期信息
     *
     * @param model
     * @return
     */
    SessionResponse getSession(SessionRequest model) throws Exception;

    /**
     * 获取排期影片信息
     *
     * @param model
     * @return
     */
    SessionFilmResponse getSessionFilms(SessionFilmRequest model) throws Exception;

    /**
     * 获取影厅信息
     *
     * @param model
     * @return
     */
    HallsResponse getHalls(BaseRequest model) throws Exception;

    /**
     * 获取场区信息
     *
     * @param model
     * @return
     */
    SectionsResponse getSections(SectionsRequest model) throws Exception;

    /**
     * 获取座位图座位信息
     *
     * @param model
     * @return
     */
    SeatPlanResponse getSeatPlan(SectionsRequest model) throws Exception;

    /**
     * 获取排期价格政策
     *
     * @param model
     * @return
     */
    SessionPricePolicyResponse getSessionPricePolicy(SessionPricePolicyRequest model) throws Exception;

    /**
     * 获取订单号
     *
     * @param model
     * @return
     */
    BookingIdResponse getBookingId(BaseRequest model) throws Exception;

    /**
     * 锁座
     *
     * @param model
     * @return
     */
    RepositionSeatsResponse repositionSeats(RepositionSeatsRequest model) throws Exception;

    /**
     * 释放座位
     *
     * @param model
     * @return
     */
    RepositionSeatsResponse releaseSeats(RepositionSeatsRequest model) throws Exception;

    /**
     * 获取场次已售出或锁定的座位信息
     *
     * @param model
     * @return
     */
    SeatSalesResponse getAllocateSeats(SeatsRequest model) throws Exception;

    /**
     * 获取订单确认号
     *
     * @param model
     * @return
     */
    ConfirmIdResponse getConfirmId(BaseRequest model) throws Exception;

    /**
     * 通过订单号获取订单信息
     *
     * @param model
     * @return
     */
    QueryOrderResponse queryOrder(QueryOrderRequest model) throws Exception;

    /**
     * 通过取票号获取订单信息
     *
     * @param model
     * @return
     */
    BookingBillResponse getBookingBill(BookingBillRequest model) throws Exception;

    /**
     * 通过订单号获取票支付信息
     *
     * @param model
     * @return
     */
    TicketsResponse getTickets(TicketsRequest model) throws Exception;

    /**
     * 退票
     *
     * @param model
     * @return
     */
    BaseResponse refund(RefundRequest model) throws Exception;

    /**
     * 获取会员卡价格政策
     *
     * @param model
     * @return
     */
    SessionPricePolicyResponse cardPricePolicy(CardPricePolicyRequest model) throws Exception;

    /**
     * 获取影片图片
     *
     * @param model
     * @return
     */
    FilmImageResponse filmImage(FilmImageRequest model) throws Exception;

}
